Ich habe mich gefragt, ob Leerzeichen und Kommentare JavaScript verlangsamen. Ich mache einen Brute-Force-Angriff, der einige Zeit dauert (30 Sekunden). Das Entfernen von Leerzeichen zeigt keine signifikante Geschwindigkeitssteigerung, aber ich denke, der Browser muss einfach mehr analysieren. Ist es also sinnvoll, unnötige Leerzeichen und Kommentare zu entfernen, um das Ganze zu beschleunigen?
2020-12-14 08:19:10
Normalerweise verwenden Benutzer Minimierer, um die GRÖSSE des Skripts zu verringern, die Download-Geschwindigkeit zu verbessern, anstatt die Geschwindigkeit beim Parsen des Skripts zu verbessern. Leerzeichen und Kommentare haben nur geringe Auswirkungen darauf, wie lange ein Browser für die Ausführung benötigt, da der Parser prüfen muss, ob es sich um Leerzeichen oder Kommentare handelt. In Wirklichkeit ist dies jedoch bei der aktuellen Rechenleistung so winzig, dass dies unmöglich ist Beachten Sie alle Auswirkungen. Die GRÖSSE ist jedoch trotz der großen Bandbreite in unserer Breitbandwelt immer noch wichtig. | Leerzeichen und Kommentare erhöhen die Größe der JavaScript-Datei, wodurch das tatsächliche Herunterladen der Datei vom Server verlangsamt wird. Bei der Minimierung werden unnötige Zeichen aus einer JavaScript-Datei entfernt, um sie kleiner und einfacher herunterzuladen. Da Sie jedoch einen Brute-Force-Angriff erwähnen, ist der Engpass wahrscheinlich nicht der Download. Verwenden Sie einen Profiler, um herauszufinden, was Sie verlangsamt. | Es ist immer sinnvoll, Ihre Assets zu minimieren, zu kombinieren und zu komprimieren, um die Serverlast zu verringern. Minimieren ist der Vorgang, auf den Sie sich beziehen, unnötige Leerzeichen und Kommentare zu entfernen, um die Download-Geschwindigkeit zu verringern. Durch das Kombinieren wird die Geschwindigkeit beim Rendern von Seiten höchstwahrscheinlich noch stärker erhöht. Es ist der Vorgang des Zusammenführens aller Ihrer Javascript-Dateien zu einer und aller Ihrer CSS-Dateien zu einer (dies kann auch für die meisten Bilder durchgeführt werden, erfordert jedoch etwas mehr Arbeit). Dies geschieht, um die Anzahl der Anforderungen zu verringern, die der Browser an Ihren Server stellen muss, um die Seite anzeigen zu können. Beim GZipping werden die Daten in einem komprimierten Format in den Browsern weiter komprimiert, die angeben, dass sie solche Daten akzeptieren. Dies reduziert die Größe weiter, erhöht jedoch die Arbeitsbelastung an beiden Enden. Sie werden wahrscheinlich einen Nettogewinn daraus sehen. Abhängig davon, in welcher Umgebung Sie arbeiten, gibt es verschiedene Komponenten, die Ihnen dabei helfen. In der Regel werden alle oben genannten Komponenten auf einmal abgedeckt. Die Zeit, die Ihr Code zum Herunterladen vom Server benötigt, wirkt sich direkt darauf aus, wie lange das Rendern der Seite dauert. JavaScript blockiert, was bedeutet, dass ein JS-Block ein weiteres Rendern verhindert, bis der Block vollständig ausgeführt wurde. Wenn Sie also Ihre Javascript-Dateien ablegen (dh zu welchem Zeitpunkt im Rendering-Prozess sie angefordert werden), hat dies Auswirkungen darauf, wie viele Anforderungen für den vollständigen Download erforderlich sind und wie viele Daten heruntergeladen werden müssen auf Ihrer Seite laden, wie es dem Benutzer erscheint. Sobald der Browser Ihren Code analysiert hat, sei es Javascript, CSS oder HTML, hat er interne Darstellungen des Teils erstellt, an den er sich erinnern muss, und die tatsächliche Formatierung wirkt sich nicht mehr darauf aus. | Ich glaube nicht, dass Leerzeichen in js-Code die Ausführung verlangsamen. Soweit ich weiß, entfernt ein Javascript-Interpreter vor der Verarbeitung alle Kommentare und redundanten Leerzeichen. Dies kann jedoch die Downloadzeit und damit die Ladezeit einer Webseite beeinflussen. Werfen Sie hier einen Blick auf zusätzliche Informationen. | Es hat jedoch kaum oder gar keinen Einfluss auf die tatsächliche Verarbeitungsgeschwindigkeit ... Kleinere Größe => weniger Bandbreite => weniger Kosten => ??? => Gewinn! | Deine Antwort StackExchange.ifUsing ("Editor", function () { StackExchange.using ("externalEditor", function () { StackExchange.using ("Snippets", function () { StackExchange.snippets.init (); }); }); }, "Code Ausschnitte"); StackExchange.ready (function () { var channelOptions = { Tags: "" .split (""), id: "1" }; initTagRenderer ("". split (""), "" .split (""), channelOptions); StackExchange.using ("externalEditor", function () { // Editor muss nach Snippets ausgelöst werden, wenn Snippets aktiviert sind if (StackExchange.settings.snippets.snippetsEnabled) { StackExchange.using ("Snippets", function () { createEditor (); }); }} sonst { createEditor (); }} }); Funktion createEditor () { StackExchange.prepareEditor ({ useStacksEditor: false, heartbeatType: 'Antwort', autoActivateHeartbeat: false, convertImagesToLinks: true, noModals: wahr, showLowRepImageUploadWarning: true, Ruf zu PostImages: 10, bindNavPrevention: true, Postfix: "", imageUploader: { brandingHtml: "Powered by \ u003ca href =" https: //imgur.com/ "\ u003e \ u003csvg class =" svg-icon "width =" 50 "height =" 18 "viewBox = "0 0 50 18" fill = "none" xmlns = "http: //www.w3.org/2000/svg" \ u003e \ u003cpath d = "M46.1709 9.17788C46.1709 8.26454 46,2665 7,94324 47,1084 7.58816C47.4091 7,46349 47,7169 7,36433 48,0099 7.26993C48.9099 6,97997 49,672 6,73443 49,672 5.93063C49.672 5,22043 48,9832 4,61182 48,1414 4.61182C47.4335 4,61182 46,7256 4,91628 46,0943 5.50789C45.7307 4,9328 45,2525 4,66231 44,6595 4.66231C43.6264 4,66231 43,1481 5,28821 43.1481 6.59048V11.9512C43.1481 13.2535 43.6264 13.8962 44.6595 13.8962C45.6924 13.8962 46.1709 13.2535 46.1709 11.9512V9.17788Z \ / M002.492 10.1419C32.492 12.4954 41.5985 12.6954 41.5985 10.1419V6.59049C41.5985 5.28821 41.1394 4.6623240.1061 4.66232C39.0732 4.66232 38.5948 5.28821 38.5948 6.59049V9.60062C38.5948 10.8521 38.2696 11.5455 37.0451 11.5455C35.8209 11.5455 35.4954 10.8521 35.4954 9.60062V6.59049C35.2232 4.23.3 "/ \ u003e \ u003cpath fill-rule =" evenodd "clip-rule =" evenodd "d =" M25.6622 17.6335C27.8049 17.6335 29.3739 16.9402 30.2537 15.6379C30.8468 14.7755 30.9615 13.5579 30.9615 11.9512V6. 59049C30.9615 5.28821 30.4833 4.66231 29.4502 4.66231C28.9913 4.66231 28.4555 4.94978 28.1109 5.50789C27.499 4.86533 26.7335 4.56087 25.7005 4.56087C23.1369 4.56087 21.0134 6.57349 21.03. 1109 12.7229 28.1161 12.7799 28.121 12.8346C28.1256 12.8854 28.1301 12.9342 28.1301 12.983C28.1301 14.4373 27.2502 15.2321 25.777 15.2321C24.8349 15.2321 24.1352 14.9821 23.5661 14.7787C23.172 14.392 14.392 14.392 14.392 18 21.2429 15.0123 21.2429 15.6887C21.2429 16.7375 22.9072 17.6335 25.6622 17.6335ZM24.1317 9.27932C24.1317 7.94324 24.9928 7.09766 26.1024 7.09766C27.2119 7.09766 28.0918 7.94324 28.0918 9.2793211 11. "/ \ u003e \ u003cpath d =" M16.8045 11.9512C16.8045 13.2535 17.2637 13.8962 18.2965 13.8962C19.3298 13.8962 19.8079 13.2535 19.8079 11.9512V8.12928C19.8079 5.82936 18.4879 4.62866 16.4027 4.6286 .653 5.05154 11.6581 4.62866 10.3573 4.62866C9.34336 4.62866 8.57809 4.89931 7.9466 5.5079C7.58314 4.9328 7.10506 4.66232 6.51203 4.66232C5.47873 4.66232 5.0006 5.28821 5.00066 6.5239 90741C8.0232 7.58817 8.44431 6.91179 9.53458 6.91179C10.5104 6.91179 10.893 7.58817 10.893 8.94108V11.9512C10.893 13.2535 11.3711 13.8962 12.4044 13.8962C13.4375 13.8962 13.915 7 13.2535 13.9157 11.9512V8.90741C13.9157 7.58817 14.3365 6.91179 15.4269 6.91179C16.4027 6.91179 16.8045 7.58817 16.8045 8.94108V11.9512Z \ "/ \ u003e \ u003cpath d =" M3.31675 6.2903 6.290C 791758 4.66232 0.313354 5.28821 0.313354 6.59049V11.9512C0.313354 13.2535 0.791758 13.8962 1.82471 13.8962C2.85798 13.8962 3.31675 13.2535 3.31675 11.9512V6.59049Z \ "/ \ u003e091 C0 2.87869 0.822846 3.57676 1.87209 3.57676C2.90056 3.57676 3.7234 2.87869 3.7234 1.98861C3.7234 1.1159 2.90056 0.400291 1.87209 0.400291Z "fill =" # 1BB76E "/ u003" contentPolicyHtml: "Benutzerbeiträge lizenziert unter \ u003ca href = \" https: //stackoverflow.com/help/licensing \ "\ u003ecc by-sa \ u003c / a \ u003e \ u003ca href = \" https://stackoverflow.com / legal / content-policy \ "\ u003e (Inhaltsrichtlinie) \ u003c / a \ u003e", allowUrls: true }, onDemand: wahr, discardSelector: ".discard-answer" , instantShowMarkdownHelp: true, enableTables: true, enableSnippets: true }); }} }); Vielen Dank, dass Sie eine Antwort auf Stack Overflow gegeben haben! Bitte beantworten Sie die Frage unbedingt. Geben Sie Details an und teilen Sie Ihre Forschung! Aber vermeiden Sie ... Um Hilfe bitten, Klarheit schaffen oder auf andere Antworten antworten. Aussagen auf der Grundlage von Meinungen machen; Unterstützen Sie sie mit Referenzen oder persönlichen Erfahrungen. Weitere Informationen finden Sie in unseren Tipps zum Schreiben großartiger Antworten. Entwurf gespeichert Entwurf verworfen Anmelden oder anmelden StackExchange.ready (function () { StackExchange.helpers.onClickDraftSave ('# login-link'); }); Melden Sie sich mit Google an Melde dich über Facebook an Melden Sie sich mit E-Mail und Passwort an einreichen Post als Gast Name Email Erforderlich, aber nie gezeigt StackExchange.ready ( function () { StackExchange.openid.initPostLogin ('. New-post-login', 'https% 3a% 2f% 2fstackoverflow.com% 2fquestions% 2f4423553% 2fdo-Leerzeichen-Kommentare-langsam-Javascript-down% 23new-answer', 'question_page' ); }} ); Post als Gast Name Email Erforderlich, aber nie gezeigt Veröffentlichen Sie Ihre Antwort Verwerfen Durch Klicken auf "Antwort posten" stimmen Sie unseren Nutzungsbedingungen, Datenschutzbestimmungen und Cookie-Richtlinien zu Nicht die Antwort, die Sie suchen? Durchsuchen Sie andere Fragen mit dem Tag Javascript oder stellen Sie Ihre eigene Frage.